Appendix A
(normative)
Supporting Tables — Test Results

Table A.1 — VendorA Desktop Client

VENDORA Desktop Client

VENDORA

VENDORB

VENDORD

1.

Event creation.

P

P

P

1.1.

Create new single-instance meeting titled “Meeting 1.1” with the location “Durham”.

P

P

N

1.2.

Create new meeting titled “Meeting 1.2” recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.

P

P

N

1.3.

Create new single-instance meeting titled “Meeting 1.3” with 2 other attendees.

P

P

N

1.4.

Create new single-instance meeting titled “Meeting 1.4” with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.

2.

Event modification

P

P

P

2.1.

Modify the title of meeting “Meeting 1.1” to “Meeting 1.1bis”.

P

P

P

2.2.

Modify the location of the meeting “Meeting 1.1bis” to “Seattle bis”.

P

P

P

2.3.

Reschedule meeting “Meeting 1.1bis” to the next day.

P

P

N

2.4.

Add an attendee to “Meeting 1.1bis”.

P

P

N

2.5.

Add an alarm to “Meeting 1.1bis”.

N

N

N

2.6.

Modify the title of the 1st instance of the recurring meeting created in 1.2.

N

N

N

2.7.

Modify the participation status of 1st instance to DECLINED.

P

P

N

2.8.

Cancel the 4th instance of the recurring meeting created in 1.2.

P

P

P

2.9.

One client changes “Meeting 1.1bis” to a different time, second client ‘refreshes’ its display to see the modification.

3.

Event retrieval

3.1.

calendar-query REPORT

3.1.1.

No filtering (match everything)

N

N

N

3.1.1.1.

Query all components and return all data. (tests <calendar-query> and <filter>)

N

N

N

3.1.1.2.

Query all components and return ETag WebDAV property and all data. (tests <calendar-query>+<DAV:prop> and <filter>)

N

N

N

3.1.1.3.

Query all components and return just entire VEVENT components. (tests <calendar-query>, <filter>+<comp-filter>)

N

N

N

3.1.1.4.

Query all components and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <filter><comp-filter>`, `<calendar-data><comp>+<prop>)

3.1.2.

time-range filtering

N

N

N

3.1.2.1.

Query all components within a one day time-range and return all data. Make sure that there is a recurring event that starts prior to the chosen time-range but has one non-overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

N

N

N

3.1.2.2.

Query all components within a one week time-range and return just entire VEVENT components. Make sure that there is a recurring event that starts prior to the chosen time-range but has one overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

3.1.3.

component based filtering

N

N

N

3.1.3.1.

Query all components that contain an embedded VALARM component. (tests <calendar-query>, <filter>+<comp-filter>)

N

N

N

3.1.3.2.

Query all components that contain an embedded VALARM component whose trigger falls within a specific time-range. (tests <calendar-query>, <filter><comp-filter><prop-filter>+<time-range>)

3.1.4.

property based filtering

N

N

N

3.1.4.1.

Query all components that contain any ORGANIZER property. (tests <calendar-query>, <filter><prop-filter><is-defined>)

N

N

N

3.1.4.2.

Query all components that contain an ORGANIZER property with a specific CUA text value case-insensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

N

N

N

3.1.4.3.

Query all components that contain an ORGANIZER property with a specific CUA text value case-sensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

3.1.5.

parameter based filtering

N

N

N

3.1.5.1.

Query all components that contain a DTSTART property with a TZID parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><is-defined>)

N

N

N

3.1.5.2.

Query all components that contain an ATTENDEE property with PARTSTAT=NEEDS-ACTION parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><text-match>)

3.2.

calendar-multiget REPORT

N

N

N

3.2.1.

Query a specific href and return all data. (tests <calendar-multiget>)

P

P

P

3.2.2.

Query multiple hrefs (some of which do not exist) and return all data. (tests <calendar-multiget>)

N

N

N

3.2.3.

Query a specific href and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

P

P

P

3.2.4.

Query multiple hrefs (some of which do not exist) and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

N

N

N

3.2.5.

Query a specific href and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

N

N

N

3.2.6.

Query multiple hrefs (some of which do not exist) and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

4.

Event deletion

P

P

P

4.1.

Delete a single non-recurring meeting.

P

P

N

4.2.

Delete a single recurring meeting with no overridden instances.

N

N

N

4.3.

Delete a single recurring meeting with overridden instances.

N

P

N

4.4.

Delete a non-overridden instance of a recurring meeting.

N

N

N

4.5.

Delete an overridden instance of a recurring meeting.

5.

Access Control

P

N

N

5.1.

View access control details on current user’s main calendar.

P

N

N

5.2.

Change access control details on current user’s main calendar to add another user with read-only access. Verify that other user can view the calendar but not change it.

P

N

N

5.3.

Change access control details on current user’s main calendar to add another user with read-write access. Verify that other user can view the calendar and change it. Verify that changes done by one user are seen by the other.

P

N

N

5.4.

Remove another user’s access to the current user’s main calendar and verify they can no longer access the calendar.

Table A.2 — VendorA Mobile Client

VENDORA Mobile Client

VENDORA

VENDORB

VENDORD

1.

Event creation.

N

N

N

1.1.

Create new single-instance meeting titled “Meeting 1.1” with the location “Durham”.

N

N

N

1.2.

Create new meeting titled “Meeting 1.2” recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.

N

N

N

1.3.

Create new single-instance meeting titled “Meeting 1.3” with 2 other attendees.

N

N

N

1.4.

Create new single-instance meeting titled “Meeting 1.4” with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.

2.

Event modification

N

N

N

2.1.

Modify the title of meeting “Meeting 1.1” to “Meeting 1.1bis”.

N

N

N

2.2.

Modify the location of the meeting “Meeting 1.1bis” to “Seattle bis”.

N

N

N

2.3.

Reschedule meeting “Meeting 1.1bis” to the next day.

N

N

N

2.4.

Add an attendee to “Meeting 1.1bis”.

N

N

N

2.5.

Add an alarm to “Meeting 1.1bis”.

N

N

N

2.6.

Modify the title of the 1st instance of the recurring meeting created in 1.2.

N

N

N

2.7.

Modify the participation status of 1st instance to DECLINED.

N

N

N

2.8.

Cancel the 4th instance of the recurring meeting created in 1.2.

N

N

N

2.9.

One client changes “Meeting 1.1bis” to a different time, second client ‘refreshes’ its display to see the modification.

3.

Event retrieval

3.1.

calendar-query REPORT

3.1.1.

No filtering (match everything)

N

N

N

3.1.1.1.

Query all components and return all data. (tests <calendar-query> and <filter>)

N

N

N

3.1.1.2.

Query all components and return ETag WebDAV property and all data. (tests <calendar-query>+<DAV:prop> and <filter>)

N

N

N

3.1.1.3.

Query all components and return just entire VEVENT components. (tests <calendar-query>, <filter>+<comp-filter>)

N

N

N

3.1.1.4.

Query all components and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <filter><comp-filter>`, `<calendar-data><comp>+<prop>)

3.1.2.

time-range filtering

P

P

N

3.1.2.1.

Query all components within a one day time-range and return all data. Make sure that there is a recurring event that starts prior to the chosen time-range but has one non-overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

P

P

N

3.1.2.2.

Query all components within a one week time-range and return just entire VEVENT components. Make sure that there is a recurring event that starts prior to the chosen time-range but has one overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

3.1.3.

component based filtering

N

N

N

3.1.3.1.

Query all components that contain an embedded VALARM component. (tests <calendar-query>, <filter>+<comp-filter>)

N

N

N

3.1.3.2.

Query all components that contain an embedded VALARM component whose trigger falls within a specific time-range. (tests <calendar-query>, <filter><comp-filter><prop-filter>+<time-range>)

3.1.4.

property based filtering

N

N

N

3.1.4.1.

Query all components that contain any ORGANIZER property. (tests <calendar-query>, `<filter><prop-filter><is-defined>)

N

N

N

3.1.4.2.

Query all components that contain an ORGANIZER property with a specific CUA text value case-insensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

N

N

N

3.1.4.3.

Query all components that contain an ORGANIZER property with a specific CUA text value case-sensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

3.1.5.

parameter based filtering

N

N

N

3.1.5.1.

Query all components that contain a DTSTART property with a TZID parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><is-defined>)

N

N

N

3.1.5.2.

Query all components that contain an ATTENDEE property with PARTSTAT=NEEDS-ACTION parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><text-match>)

3.2.

calendar-multiget REPORT

N

N

N

3.2.1.

Query a specific href and return all data. (tests <calendar-multiget>)

N

N

N

3.2.2.

Query multiple hrefs (some of which do not exist) and return all data. (tests <calendar-multiget>)

N

N

N

3.2.3.

Query a specific href and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

N

N

N

3.2.4.

Query multiple hrefs (some of which do not exist) and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

N

N

N

3.2.5.

Query a specific href and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

N

N

N

3.2.6.

Query multiple hrefs (some of which do not exist) and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

4.

Event deletion

N

N

N

4.1.

Delete a single non-recurring meeting.

N

N

N

4.2.

Delete a single recurring meeting with no overridden instances.

N

N

N

4.3.

Delete a single recurring meeting with overridden instances.

N

N

N

4.4.

Delete a non-overridden instance of a recurring meeting.

N

N

N

4.5.

Delete an overridden instance of a recurring meeting.

5.

Access Control

N

N

N

5.1.

View access control details on current user’s main calendar.

N

N

N

5.2.

Change access control details on current user’s main calendar to add another user with read-only access. Verify that other user can view the calendar but not change it.

N

N

N

5.3.

Change access control details on current user’s main calendar to add another user with read-write access. Verify that other user can view the calendar and change it. Verify that changes done by one user are seen by the other.

N

N

N

5.4.

Remove another user’s access to the current user’s main calendar and verify they can no longer access the calendar.

Table A.3 — VendorC Client

VENDORC Client

VENDORA

VENDORB

VENDORD

1.

Event creation.

N (3)

N

N

1.1.

Create new single-instance meeting titled “Meeting 1.1” with the location “Durham”.

N (3)

N

N

1.2.

Create new meeting titled “Meeting 1.2” recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.

N (3)

N

N

1.3.

Create new single-instance meeting titled “Meeting 1.3” with 2 other attendees.

N (3)

N

N

1.4.

Create new single-instance meeting titled “Meeting 1.4” with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.

2.

Event modification

P

P

P

2.1.

Modify the title of meeting “Meeting 1.1” to “Meeting 1.1bis”.

P

P

P

2.2.

Modify the location of the meeting “Meeting 1.1bis” to “Seattle bis”.

P

P

P

2.3.

Reschedule meeting “Meeting 1.1bis” to the next day.

P

P

N

2.4.

Add an attendee to “Meeting 1.1bis”.

N

N

N

2.5.

Add an alarm to “Meeting 1.1bis”.

N

N

N

2.6.

Modify the title of the 1st instance of the recurring meeting created in 1.2.

N

N

N

2.7.

Modify the participation status of 1st instance to DECLINED.

N

N

N

2.8.

Cancel the 4th instance of the recurring meeting created in 1.2.

(NOT TESTED)

(NOT TESTED)

P

2.9.

One client changes “Meeting 1.1bis” to a different time, second client ‘refreshes’ its display to see the modification.

3.

Event retrieval

3.1.

calendar-query REPORT

3.1.1.

No filtering (match everything)

N

N

N

3.1.1.1.

Query all components and return all data. (tests <calendar-query> and <filter>)

N

N

N

3.1.1.2.

Query all components and return ETag WebDAV property and all data. (tests <calendar-query>+<DAV:prop> and <filter>)

N

N

N

3.1.1.3.

Query all components and return just entire VEVENT components. (tests <calendar-query>, <filter>+<comp-filter>)

N

N

N

3.1.1.4.

Query all components and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <filter><comp-filter>`, `<calendar-data><comp>+<prop>)

3.1.2.

time-range filtering

N

N

N

3.1.2.1.

Query all components within a one day time-range and return all data. Make sure that there is a recurring event that starts prior to the chosen time-range but has one non-overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

P (2) — except override

P (1) — except recurr

P (1) — except recurr

3.1.2.2.

Query all components within a one week time-range and return just entire VEVENT components. Make sure that there is a recurring event that starts prior to the chosen time-range but has one overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

3.1.3.

component based filtering

N

N

N

3.1.3.1.

Query all components that contain an embedded VALARM component. (tests <calendar-query>, <filter>+<comp-filter>)

N

N

N

3.1.3.2.

Query all components that contain an embedded VALARM component whose trigger falls within a specific time-range. (tests <calendar-query>, <filter><comp-filter><prop-filter>+<time-range>)

3.1.4.

property based filtering

N

N

N

3.1.4.1.

Query all components that contain any ORGANIZER property. (tests <calendar-query>, <filter><prop-filter><is-defined>)

N

N

N

3.1.4.2.

Query all components that contain an ORGANIZER property with a specific CUA text value case-insensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

N

N

N

3.1.4.3.

Query all components that contain an ORGANIZER property with a specific CUA text value case-sensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

3.1.5.

parameter based filtering

N

N

N

3.1.5.1.

Query all components that contain a DTSTART property with a TZID parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><is-defined>)

N

N

N

3.1.5.2.

Query all components that contain an ATTENDEE property with PARTSTAT=NEEDS-ACTION parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><text-match>)

3.2.

calendar-multiget REPORT

N

N

N

3.2.1.

Query a specific href and return all data. (tests <calendar-multiget>)

N

N

N

3.2.2.

Query multiple hrefs (some of which do not exist) and return all data. (tests <calendar-multiget>)

N

N

N

3.2.3.

Query a specific href and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

N

N

N

3.2.4.

Query multiple hrefs (some of which do not exist) and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

N

N

N

3.2.5.

Query a specific href and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

N

N

N

3.2.6.

Query multiple hrefs (some of which do not exist) and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

4.

Event deletion

P

P

P

4.1.

Delete a single non-recurring meeting.

P

N

N

4.2.

Delete a single recurring meeting with no overridden instances.

N

N

N

4.3.

Delete a single recurring meeting with overridden instances.

N

N

N

4.4.

Delete a non-overridden instance of a recurring meeting.

N

N

N

4.5.

Delete an overridden instance of a recurring meeting.

5.

Access Control

N

N

N

5.1.

View access control details on current user’s main calendar.

N

N

N

5.2.

Change access control details on current user’s main calendar to add another user with read-only access. Verify that other user can view the calendar but not change it.

N

N

N

5.3.

Change access control details on current user’s main calendar to add another user with read-write access. Verify that other user can view the calendar and change it. Verify that changes done by one user are seen by the other.

N

N

N

5.4.

Remove another user’s access to the current user’s main calendar and verify they can no longer access the calendar.

Table A.4 — Server Support

Server — Support

VENDORA

VENDORB

VENDORD

1.

Event creation.

P

P

P

1.1.

Create new single-instance meeting titled “Meeting 1.1” with the location “Durham”.

P

P

N

1.2.

Create new meeting titled “Meeting 1.2” recurring every Monday from 10:00 AM to 11:00 AM for 4 weeks.

P

P

N

1.3.

Create new single-instance meeting titled “Meeting 1.3” with 2 other attendees.

P

P

N

1.4.

Create new single-instance meeting titled “Meeting 1.4” with an alarm set to trigger 15 minutes prior to the schedule time of the meeting.

2.

Event modification

P

P

P

2.1.

Modify the title of meeting “Meeting 1.1” to “Meeting 1.1bis”.

P

P

P

2.2.

Modify the location of the meeting “Meeting 1.1bis” to “Seattle bis”.

P

P

P

2.3.

Reschedule meeting “Meeting 1.1bis” to the next day.

P

P

N

2.4.

Add an attendee to “Meeting 1.1bis”.

P

P

N

2.5.

Add an alarm to “Meeting 1.1bis”.

P

P

N

2.6.

Modify the title of the 1st instance of the recurring meeting created in 1.2.

P

P

N

2.7.

Modify the participation status of 1st instance to DECLINED.

P

P

N

2.8.

Cancel the 4th instance of the recurring meeting created in 1.2.

P

P

P

2.9.

One client changes “Meeting 1.1bis” to a different time, second client ‘refreshes’ its display to see the modification.

3.

Event retrieval

3.1.

calendar-query REPORT

3.1.1.

No filtering (match everything)

P

P

P

3.1.1.1.

Query all components and return all data. (tests <calendar-query> and <filter>)

P

P

P

3.1.1.2.

Query all components and return ETag WebDAV property and all data. (tests <calendar-query>+<DAV:prop> and <filter>)

P

P

P

3.1.1.3.

Query all components and return just entire VEVENT components. (tests <calendar-query>, <filter>+<comp-filter>)

P

P

P

3.1.1.4.

Query all components and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <filter><comp-filter>`, `<calendar-data><comp>+<prop>)

3.1.2.

time-range filtering

P

P

P

3.1.2.1.

Query all components within a one day time-range and return all data. Make sure that there is a recurring event that starts prior to the chosen time-range but has one non-overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

P

P

P

3.1.2.2.

Query all components within a one week time-range and return just entire VEVENT components. Make sure that there is a recurring event that starts prior to the chosen time-range but has one overridden instance within the time-range. (tests <calendar-query>, <filter>+<time-range>)

3.1.3.

component based filtering

P

P

N

3.1.3.1.

Query all components that contain an embedded VALARM component. (tests <calendar-query>, <filter>+<comp-filter>)

P

P

N

3.1.3.2.

Query all components that contain an embedded VALARM component whose trigger falls within a specific time-range. (tests <calendar-query>, <filter><comp-filter><prop-filter>+<time-range>)

3.1.4.

property based filtering

P

P

P

3.1.4.1.

Query all components that contain any ORGANIZER property. (tests <calendar-query>, <filter><prop-filter><is-defined>)

P

P

F

3.1.4.2.

Query all components that contain an ORGANIZER property with a specific CUA text value case-insensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

P

P

F

3.1.4.3.

Query all components that contain an ORGANIZER property with a specific CUA text value case-sensitively. (tests <calendar-query>, <filter><prop-filter><text-match>+<caseless>)

3.1.5.

parameter based filtering

P

P

N

3.1.5.1.

Query all components that contain a DTSTART property with a TZID parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><is-defined>)

P

P

N

3.1.5.2.

Query all components that contain an ATTENDEE property with PARTSTAT=NEEDS-ACTION parameter. (tests <calendar-query>, <filter><prop-filter><text-match><param-filter><text-match>)

3.2.

calendar-multiget REPORT

P

P

P

3.2.1.

Query a specific href and return all data. (tests <calendar-multiget>)

P

P

P

3.2.2.

Query multiple hrefs (some of which do not exist) and return all data. (tests <calendar-multiget>)

P

P

P

3.2.3.

Query a specific href and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

P

P

P

3.2.4.

Query multiple hrefs (some of which do not exist) and return ETag WebDAV property and all data. (tests <calendar-multiget>+<DAV:prop>)

P

P

P

3.2.5.

Query a specific href and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

P

P

P

3.2.6.

Query multiple hrefs (some of which do not exist) and return VEVENT components with only DTSTART, DTEND/DURATION, SUMMARY, UID, SEQUENCE, RRULE, RDATE, EXRULE, EXDATE, RECURRENCE-ID. (tests <calendar-query>, <calendar-data><comp><prop>)

4.

Event deletion

P

P

P

4.1.

Delete a single non-recurring meeting.

P

P

N

4.2.

Delete a single recurring meeting with no overridden instances.

P

P

N

4.3.

Delete a single recurring meeting with overridden instances.

P

P

N

4.4.

Delete a non-overridden instance of a recurring meeting.

P

P

N

4.5.

Delete an overridden instance of a recurring meeting.

5.

Access Control

N

N

N

5.1.

View access control details on current user’s main calendar.

N

N

N

5.2.

Change access control details on current user’s main calendar to add another user with read-only access. Verify that other user can view the calendar but not change it.

N

N

N

5.3.

Change access control details on current user’s main calendar to add another user with read-write access. Verify that other user can view the calendar and change it. Verify that changes done by one user are seen by the other.

N

N

N

5.4.

Remove another user’s access to the current user’s main calendar and verify they can no longer access the calendar.